Trò chơi Angry Birds trong UNITY Engine
31.699 lượt xem;
1 using UnityEngine;
2 using System.Collections;
3
4
5 /// <summary>
6 /// base class for any color tweens (MaterialColor and ColorTween)
7 /// </summary>
8 public abstract class AbstractColorTweenProperty : AbstractTweenProperty
9 {
10 protected Material _target;
11
12 protected Color _originalEndValue;
13 protected Color _startValue;
14 protected Color _endValue;
15 protected Color _diffValue;
16
17
18 public AbstractColorTweenProperty( Color endValue, bool isRelative ) : base( isRelative )
19 {
20 _originalEndValue = endValue;
21 }
22
23
24 public override bool validateTarget( object target )
25 {
26 return ( target is Material || target is GameObject || target is Transform || target is Renderer );
27 }
28
29
30 public override void init( GoTween owner )
31 {
32 // setup our target before initting
33 if( owner.target is Material )
34 _target = (Material)owner.target;
35 else if( owner.target is GameObject )
36 _target = ((GameObject)owner.target).GetComponent<Renderer>().material;
37 else if( owner.target is Transform )
38 _target = ((Transform)owner.target).GetComponent<Renderer>().material;
39 else if( owner.target is Renderer )
40 _target = ((Renderer)owner.target).material;
41
42 base.init( owner );
43 }
44
45
46 public override void prepareForUse()
47 {
48 if( _isRelative && !_ownerTween.isFrom )
49 _diffValue = _endValue;
50 else
51 _diffValue = _endValue - _startValue;
52 }
53
54 }
2 using System.Collections;
3
4
5 /// <summary>
6 /// base class for any color tweens (MaterialColor and ColorTween)
7 /// </summary>
8 public abstract class AbstractColorTweenProperty : AbstractTweenProperty
9 {
10 protected Material _target;
11
12 protected Color _originalEndValue;
13 protected Color _startValue;
14 protected Color _endValue;
15 protected Color _diffValue;
16
17
18 public AbstractColorTweenProperty( Color endValue, bool isRelative ) : base( isRelative )
19 {
20 _originalEndValue = endValue;
21 }
22
23
24 public override bool validateTarget( object target )
25 {
26 return ( target is Material || target is GameObject || target is Transform || target is Renderer );
27 }
28
29
30 public override void init( GoTween owner )
31 {
32 // setup our target before initting
33 if( owner.target is Material )
34 _target = (Material)owner.target;
35 else if( owner.target is GameObject )
36 _target = ((GameObject)owner.target).GetComponent<Renderer>().material;
37 else if( owner.target is Transform )
38 _target = ((Transform)owner.target).GetComponent<Renderer>().material;
39 else if( owner.target is Renderer )
40 _target = ((Renderer)owner.target).material;
41
42 base.init( owner );
43 }
44
45
46 public override void prepareForUse()
47 {
48 if( _isRelative && !_ownerTween.isFrom )
49 _diffValue = _endValue;
50 else
51 _diffValue = _endValue - _startValue;
52 }
53
54 }